What is @turf/boolean-point-on-line?
@turf/boolean-point-on-line is a module from the Turf.js library that allows you to determine if a given point lies on a line. This can be useful for various geospatial analyses, such as validating routes, checking if a location is on a path, or any other scenario where you need to verify point-line relationships.
What are @turf/boolean-point-on-line's main functionalities?
Check if a point is on a line
This feature allows you to check if a specific point lies on a given line. In the code sample, the point [2, 2] is checked against a line that passes through [1, 1], [3, 3], and [4, 4]. The result is true because the point lies on the line.
const turf = require('@turf/turf');
const point = turf.point([2, 2]);
const line = turf.lineString([[1, 1], [3, 3], [4, 4]]);
const isPointOnLine = turf.booleanPointOnLine(point, line);
console.log(isPointOnLine); // true
Check if a point is on a line with a tolerance
This feature allows you to check if a point is on a line within a specified tolerance. In the code sample, the point [2, 2.1] is checked against the same line with a tolerance of 0.2. The result is true because the point is within the tolerance range of the line.
const turf = require('@turf/turf');
const point = turf.point([2, 2.1]);
const line = turf.lineString([[1, 1], [3, 3], [4, 4]]);
const isPointOnLine = turf.booleanPointOnLine(point, line, { tolerance: 0.2 });
console.log(isPointOnLine); // true
Other packages similar to @turf/boolean-point-on-line
point-in-polygon
The 'point-in-polygon' package allows you to check if a point is inside a polygon. While it doesn't check for points on lines, it is useful for similar geospatial analyses where you need to determine point-in-shape relationships.
geolib
The 'geolib' package provides a variety of geospatial functions, including checking if a point is on a line. It offers more general-purpose geospatial utilities compared to @turf/boolean-point-on-line, which is more specialized.
leaflet
Leaflet is a popular library for interactive maps. While it is primarily used for rendering maps, it also provides some geospatial analysis functions, including checking if a point is on a line. It is more comprehensive in terms of mapping capabilities compared to @turf/boolean-point-on-line.
@turf/boolean-point-on-line
booleanPointOnLine
Returns true if a point is on a line. Accepts a optional parameter to ignore the start and end vertices of the linestring.
Parameters
pt
Coord GeoJSON Pointline
Feature<LineString> GeoJSON LineStringoptions
Object Optional parameters (optional, default {}
)
options.ignoreEndVertices
boolean whether to ignore the start and end vertices. (optional, default false
)
Examples
var pt = turf.point([0, 0]);
var line = turf.lineString([[-1, -1],[1, 1],[1.5, 2.2]]);
var isPointOnLine = turf.booleanPointOnLine(pt, line);
Returns boolean true/false
This module is part of the Turfjs project, an open source
module collection dedicated to geographic algorithms. It is maintained in the
Turfjs/turf repository, where you can create
PRs and issues.
Installation
Install this module individually:
$ npm install @turf/boolean-point-on-line
Or install the Turf module that includes it as a function:
$ npm install @turf/turf